package org.fall.system.service;

import org.fall.system.model.ResultEntity;
import org.fall.system.model.dto.AdminUserDTO;
import org.fall.system.model.dto.UserQueryDTO;
import org.fall.system.model.vo.AdminUserVO;

import java.util.List;

/**
 * @author zjh
 * @since 2021/4/1 22:08
 */
public interface BackstageAdminUserService {
    /**
     * 查询管理员账户list
     * @param dto dto
     * @return 查询结果
     */
    List<AdminUserVO> queryAdminUserList(UserQueryDTO dto);

    /**
     * 删除管理员用户
     * @param username username
     * @return 删除结果
     */
    ResultEntity deleteAdminUser(String username);

    /**
     * 更改管理员用户的状态（启用/待审核）
     * @param username username
     * @return 更改结果
     */
    ResultEntity changeAdminUserState(String username);

    /**
     * 批量删除管理员账号
     * @param list 账号id的list
     * @return 删除结果
     */
    ResultEntity batchDeleteAdminUsers(List<Integer> list);

    /**
     * 通过id得到管理员用户的详细信息
     * @param id 管理员账户id
     * @return vo结果
     */
    AdminUserVO getAdminUserById(Integer id);

    /**
     * 更新管理员用户信息
     * @param dto dto
     * @return 修改结果
     */
    ResultEntity editAdminUser(AdminUserDTO dto);
}
